home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / gl_dev.idb / usr / share / src / OpenGL / tools / glsplay / main.c.z / main.c
Encoding:
C/C++ Source or Header  |  1996-03-15  |  2.5 KB  |  114 lines

  1. /*------------------------------*\
  2. |* include
  3. \*------------------------------*/
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <Xm/Xm.h>
  7. #include <Xm/Protocols.h>
  8. #include <Xm/MwmUtil.h>
  9. #include <Xm/DialogS.h>
  10. #include <Xm/FileSB.h>
  11. #include <Xm/PanedW.h>
  12. #include <Xm/Form.h>
  13. #include <Xm/RowColumn.h>
  14. #include <Xm/MessageB.h>
  15. #include <Xm/Text.h>
  16. #include <Xm/List.h>
  17. #include <Xm/PushB.h>
  18. #include <GL/gl.h>
  19. #include "glsplay.h"
  20.  
  21. /*------------------------------*\
  22. |* global
  23. \*------------------------------*/
  24. XtAppContext GLSapp;
  25. XtInputId GLSinputID;
  26. Widget GLSwidget;
  27.  
  28. /*------------------------------*\
  29. |* local
  30. \*------------------------------*/
  31. static String fallbacks[] = {
  32.     "glsplay*sgiMode: true",
  33.     "glsplay*useSchemes: all",
  34.     NULL
  35. };
  36.  
  37. /*------------------------------*\
  38. |* SetFileName
  39. \*------------------------------*/
  40. static void SetFileName(Widget w, XtPointer client, XtPointer info)
  41. {
  42.     char *name;
  43.  
  44.     if (XmStringGetLtoR(((XmFileSelectionBoxCallbackStruct *)info)->value,
  45.                         XmSTRING_DEFAULT_CHARSET, &name) == True) {
  46.     ShowWindowInit(name);
  47.     XtFree(name);
  48.     XtUnmanageChild(w);
  49.     }
  50. }
  51.  
  52. /*------------------------------*\
  53. |* Done
  54. \*------------------------------*/
  55. void Done(Widget w, XtPointer client, XtPointer info)
  56. {
  57.  
  58.     XtUnmanageChild(w);
  59.     exit(1);
  60. }
  61.  
  62. /*------------------------------*\
  63. |* File
  64. \*------------------------------*/
  65. void File(void)
  66. {
  67.     Atom atom;
  68.     Widget wDialog;
  69.  
  70.     wDialog = XmCreateFileSelectionDialog(GLSwidget, "dialog", NULL, 0);
  71.     XtVaSetValues(
  72.     wDialog,
  73.     XmNautoUnmanage, False,
  74.     XmNheight, 500,
  75.     XmNresizePolicy, XmRESIZE_GROW,
  76.     XmNwidth, 600,
  77.     NULL
  78.     );
  79.     XtUnmanageChild(XmFileSelectionBoxGetChild(wDialog, XmDIALOG_HELP_BUTTON));
  80.     XtAddCallback(wDialog, XmNokCallback, (XtCallbackProc)SetFileName, NULL);
  81.     XtAddCallback(wDialog, XmNcancelCallback, (XtCallbackProc)Done, NULL);
  82.  
  83.     XtManageChild(wDialog);
  84. }
  85.  
  86. /*------------------------------*\
  87. |* main
  88. \*------------------------------*/
  89. main(int argc, char *argv[])
  90. {
  91.  
  92.     /* init
  93.     \*------------------------------*/
  94.     XtSetLanguageProc(NULL, NULL, NULL);
  95.     GLSwidget = XtVaAppInitialize(&GLSapp, "glsplay", NULL, 0, &argc, argv,
  96.                   fallbacks, NULL);
  97.  
  98.     /* get file
  99.     \*------------------------------*/
  100.     if (argc >= 2) {
  101.     ShowWindowInit(argv[1]);
  102.     } else {
  103.         File();
  104.     }
  105.  
  106.     /* go
  107.     \*------------------------------*/
  108.     XtAppMainLoop(GLSapp);
  109. }
  110.  
  111. /*------------------------------*\
  112. |* bottom
  113. \*------------------------------*/
  114.